This invention relates to computer systems for simulating physical processes, e.g., fluid flow.
The conventional approach to simulating high Reynolds number flow has been to generate discretized solutions of the Navier-Stokes differential equations, in which high-precision floating point arithmetic operations are performed at each of many discrete spatial locations on variables representing the macroscopic physical quantities (e.g., density, temperature, flow velocity). The fastest and most powerful computers available are used, and yet very limited and inexact results have been achieved. To keep run times manageable, very coarse grid resolutions are used, and even at those coarse resolutions there are unacceptable errors in the solutions due to accumulated round off errors inherent in performing successive floating point arithmetic operations.
There has long been an effort to replace the differential equation approach with what is generally known as lattice gas (or cellular) automata, in which the macroscopic-level simulation provided by solving the Navier-Stokes equations is replaced by a microscopic-level model that performs operations on particles moving between sites on a lattice. The goal has long been to find a microscopic-level model of particle interactions and movement that would produce the correct macroscopic results (i.e., variations in density, temperature, etc. as prescribed by the Navier Stokes equations).
The traditional lattice gas simulation assumes a limited number of particles at each lattice site, with the particles being represented by a short vector of bits. Each bit represents a particle moving in a particular direction. For example, one bit in the vector might represent the presence (when set to 1) or absence (when set to 0) of a particle moving along a particular direction. Such a vector might have six bits, with, for example, the values 110000 indicating two particles moving in opposite directions along the X axis, and no particles moving along the Y and Z axes. A set of collision rules governs the behavior of collisions between particles at each site (e.g., a 110000 vector might become a 001100 vector, indicating that a collision between the two particles moving along the X axis produced two particles moving away along the Y axis). The rules are implemented by supplying the state vector to a lookup table, which performs a permutation on the bits (e.g., transforming the 110000 to 001100). Particles are then moved to adjoining sites (e.g., the two particles moving along the Y axis would be moved to neighboring sites to the left and right along the Y axis).
Molvig et al. taught an improved lattice gas technique in which, among other things, many more bits were added to the state vector at each lattice site (e.g., 54 bits for subsonic flow) to provide variation in particle energy and movement direction, and collision rules involving subsets of the full state vector were employed. Molvig et al PCT/US91/04930; Molvig et al., "Removing the Discreteness Artifacts in 3D Lattice-Gas Fluids", Proceedings of the Workshop on Discrete Kinetic Theory, Lattice Gas Dynamics, and Foundations of Hydrodynamics, World Scientific Publishing Co., Pte., Ltd., Singapore (1989); Molvig et al., "Multi-species Lattice-Gas Automata for Realistic Fluid Dynamics", Springer Proceedings in Physics, Vol. 46, Cellular Automata and Modeling of Complex Physical Systems, Springer-Verlag Berlin, Heidelberg (1990) (all hereby incorporated by reference). These improvements and others taught by Molvig et al. produced the first practical lattice-gas computer system. Discreteness artifacts that had made earlier lattice gas models inaccurate at modeling fluid flow were eliminated.
At higher Reynolds numbers, flow at the surface of an object forms a turbulent boundary layer, which is a thin region of complex flow. Simulating flow within such a boundary layer is not currently practical, even with the improved lattice gas techniques taught by Molvig et al. in the publications referenced above. Prior lattice gas simulations, including the above referenced improved simulations of Molvig et al., have modeled the particle-boundary interactions using what could be termed a "bounce back" technique, in which a particle colliding with the boundary returns a particle with the same energy but in the opposite direction. This correctly produces a zero velocity at the surface of solid objects, but the simulation does not accurately model the boundary layer flow, particularly when the boundary layer is turbulent.